import { defaHttp, Api, PagingApi } from "../index";

/**提币记录 */
export async function apiWithdrawCoinLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiWithdrawCoinLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiWithdrawCoinLogs.DataItem[]>>(
    "/money/withdraw",
    data
  );
  return res;
}

/**提币记录 */
export namespace ApiWithdrawCoinLogs {
  export interface DataItem {
    /**
     * 实际转账金额，示例：1.980000
     */
    actual_number: string;
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 币种ID，示例：2
     */
    coin_id: number;
    /**
     * 示例：2023-04-08 17:13:17
     */
    created_at: string;
    /**
     * 手续费，示例：0.02
     */
    fee: string;
    /**
     * 示例：2
     */
    id: number;
    /**
     * 提币数量，示例：2.000000
     */
    number: string;
    /**
     * 状态1:成功；2：失败；0区块确认中
     */
    status: number;
    /**
     * 状态 说明，示例：区块确认中
     */
    status_text: string;
    /**
     * 交易标识，示例：null
     */
    txid: string;
  }
}
/**我的社区列表(邀请记录) */
export async function apiCommunityList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiCommunityList.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiCommunityList.DataItem[]>>(
    "/user/my/recommend",
    data
  );
  return res;
}
/**我的社区列表(邀请记录) */
export namespace ApiCommunityList {
  export interface DataItem {
    /**
     * 地址，示例：0xa64719b507c4eb7ed06fefd7abe047c8a4745b2d
     */
    address: string;
    /**
     * 时间，示例：2023-04-07 17:05:49
     */
    created_at: string;
    /**
     * 示例：3
     */
    id: number;
    /**
     * 等级，示例：0
     */
    level: number;
  }
}
/**兑换记录 */
export async function apiSwapLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiSwapLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiSwapLogs.DataItem[]>>(
    "/swap/log",
    data
  );
  return res;
}
/**兑换记录 */
export namespace ApiSwapLogs {
  export interface DataItem {
    /**
     * 示例：2023-05-06 14:59:12
     */
    created_at: string;
    /**
     * 示例：-
     */
    fromcoin: Coin;
    /**
     * 示例：1
     */
    from_id: number;
    /**
     * 示例：2
     */
    id: number;
    /**
     * 示例：100.0000
     */
    number: string;
    /**
     * 示例：1
     */
    status: number;
    /**
     * 示例：-
     */
    tocoin: Coin;
    /**
     * 示例：2
     */
    to_id: number;
    to_number: string;
    txid: string;
  }
}

/**解锁明细 */
export async function apiCommunityGetLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiCommunityGetLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiCommunityGetLogs.DataItem[]>>(
    "/money/reward",
    data
  );
  return res;
}
/**解锁明细 */
export namespace ApiCommunityGetLogs {
  export interface DataItem {
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 示例：2
     */
    coin_id: number;
    /**
     * 时间，示例：2023-05-12 20:39:59
     */
    created_at: string;
    /**
     * 示例：5
     */
    id: number;
    /**
     * 金额；数量，示例：21.870000
     */
    money: string;
    /**
     * 产生人。等于自己的ID 就是自己的
     */
    produce: Produce;
    /**
     * 示例：10
     */
    produce_id: number;
  }

  /**
   * 产生人。等于自己的ID 就是自己的
   */
  export interface Produce {
    /**
     * 产生人的地址，示例：null
     */
    address: string;
    /**
     * 示例：10
     */
    id: number;
  }
}

/**解锁明细 */
export async function apiUnlockGetLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiUnlockGetLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiUnlockGetLogs.DataItem[]>>(
    "/money/register",
    data
  );
  return res;
}
/**解锁明细 */
export namespace ApiUnlockGetLogs {
  export interface DataItem {
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 示例：2
     */
    coin_id: number;
    /**
     * 时间，示例：2023-05-07 19:09:15
     */
    created_at: string;
    /**
     * 示例：1
     */
    id: number;
    /**
     * 金额；数量，示例：2187.0000
     */
    money: string;
    /**
     * 产生人。等于自己的ID 就是自己的
     */
    produce: Produce;
    /**
     * 示例：4
     */
    produce_id: number;
  }

  /**
   * 产生人。等于自己的ID 就是自己的
   */
  export interface Produce {
    /**
     * 示例：0xcf60166a993b9c0e61b204d8a0334cd02594e74d
     */
    address: string;
    /**
     * 示例：4
     */
    id: number;
  }
}

/**购币奖励 */
export async function apiBuyCoinGetLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiBuyCoinGetLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiBuyCoinGetLogs.DataItem[]>>(
    "/swap/trade/reward",
    data
  );
  return res;
}
/**购币奖励 */
export namespace ApiBuyCoinGetLogs {
  export interface DataItem {
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 示例：2
     */
    coin_id: number;
    /**
     * 时间，示例：2023-05-18 19:08:07
     */
    created_at: string;
    /**
     * 示例：3
     */
    id: number;
    /**
     * 金额；数量，示例：0.0992
     */
    money: string;
    /**
     * 示例：-
     */
    swap: Swap;
    /**
     * 示例：8
     */
    swap_id: number;
    /**
     * 示例：1
     */
    type: number;
  }
  /**
   * 示例：-
   */
  export interface Swap {
    /**
     * 示例：8
     */
    id: number;
    /**
     * 示例：0.1000
     */
    number: string;
    /**
     * 示例：1
     */
    status: number;
    /**
     * 示例：9.9161
     */
    to_number: string;
    /**
     * 示例：0xbe5df4cdf9a4bafc38b9fd080b8fe5061b84294d5af3b44b7f545e00c6218690
     */
    txid: string;
  }
}

/**流动性奖励 */
export async function apiLiquidityGetLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiLiquidityGetLogs.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiLiquidityGetLogs.DataItem[]>>(
    "/money/liquidity",
    data
  );
  return res;
}
/**流动性奖励 */
export namespace ApiLiquidityGetLogs {
  export interface DataItem {
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 示例：2
     */
    coin_id: number;
    /**
     * 时间，示例：2023-05-23 19:35:24
     */
    created_at: string;
    /**
     * 示例：8
     */
    id: number;
    /**
     * 示例：12218.2000
     */
    number: string;
    /**
     * 示例：0.977456
     */
    rate: string;
  }
}

/**全网交易记录(单页) */
export async function apiKlineTransactionLogs(
  data: PagingApi.Req
): Promise<Api.Res<ApiKlineTransactionLogs.DataItem[]>> {
  const res = await defaHttp.post<Api.Res<ApiKlineTransactionLogs.DataItem[]>>(
    "/transaction",
    data
  );
  return res;
}
/**全网交易记录(单页) */
export namespace ApiKlineTransactionLogs {
  export interface Req {
    /**1:最新公告；2：常见问题 */
    type: number;
  }
  export interface DataItem {
    /**
     * 示例：quickswap
     */
    amm: string;
    /**
     * 示例：0.002773262214057588500000000000000000
     */
    amount_eth: string;
    /**
     * 示例：5.000000000000000000000000000000000000
     */
    amount_usd: string;
    /**
     * 示例：polygon
     */
    chain: string;
    /**
     * 示例：0xc2132d05d31c914a87c6611c10748aeb04b58e8f
     */
    from_address: string;
    /**
     * 卖出数量
     * 示例：5.000000
     */
    from_amount: string;
    /**
     * 示例：0.000554652442811517700000000000000000
     */
    from_price_eth: string;
    /**
     * 示例：1.000000000000000000000000000000000000
     */
    from_price_usd: string;
    /**
     * 示例：USDT
     */
    from_symbol: string;
    /**
     * 示例：0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff
     */
    sender: string;
    /**
     * 示例：1685070406
     */
    time: number;
    /**
     * 示例：0xc7f1b9653b8f9abd94f19c77397a8867bd8ae46e
     */
    to_address: string;
    /**
     * 得到数量
     * 示例：2630.389924587202305620
     */
    to_amount: string;
    /**
     * 示例：0.000001054316011529282034691844792915
     */
    to_price_eth: string;
    /**
     * 示例：0.001900858862506732500000000000000000
     */
    to_price_usd: string;
    /**
     * 示例：WKC
     */
    to_symbol: string;
    /**
     * 示例：0xcbd396c5bb2351228ab89e5d24d311173106bc0a60c14749a4f1004b911ebfc7
     */
    transaction: string;
    /**
     * 示例：0xf6deea38e6f44a0216dda83a0f098dad660ac309
     */
    wallet_address: string;
  }
}
